#pragma once

#include <d3dx9.h>

#include "AbstractGame.h"
#include "SpriteManager.h"
#include "GameManagement.h"
#include "Utils.h"

class GameScene: public AbstractGame
{
private:
	SpriteManager _spriteManager;
	GameManagement* _game;
public: 

	GameScene(HINSTANCE hInstance, LPWSTR Name, int Mode, int IsFullScreen, int FrameRate);
	~GameScene();

	LPD3DXSPRITE _SpriteHandler;
	LPDIRECT3DSURFACE9 Background;


protected:
	LPDIRECT3DSURFACE9 _Background;

	virtual void initializeSpriteHandler(LPDIRECT3DDEVICE9 d3ddv);
	
	virtual void updateGame();
	virtual void RenderFrame(LPDIRECT3DDEVICE9 d3ddv, int Delta);
	virtual void ProcessInput(LPDIRECT3DDEVICE9 d3ddv, int Delta);
	virtual void LoadResources(LPDIRECT3DDEVICE9 d3ddv);
	virtual void initializeGame();

	virtual void OnKeyDown(int KeyCode);
};